﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="StrategyAttributes.cs" company="">
//   
// </copyright>
// <summary>
//   The pattern.
// </summary>
// --------------------------------------------------------------------------------------------------------------------


using System;

namespace Systemathics.FrameWork
{
    [AttributeUsage(AttributeTargets.All)]
    public sealed class Parameters : Attribute
    {
        public Parameters(string fileName)
        {
            Name = fileName;
        }
        public string Name { get; private set; }
    }
    [AttributeUsage(AttributeTargets.All)]
    public sealed class ProviderName : Attribute
    {
        public ProviderName(string Name)
        {
            this.Name = Name;
        }
        public ProviderName(StrategyMode Mode)
        {
            this.Name = Mode.ToString();
        }
        public string Name { get; private set; }
    }
    [AttributeUsage(AttributeTargets.All)]
    public sealed class BrokerFees : Attribute
    {
        public BrokerFees(string Name)
        {
            this.Name = Name;
        }
        public string Name { get; private set; }
    }
    [AttributeUsage(AttributeTargets.All)]
    public sealed class Pattern : Attribute
    {
        public Pattern(string pattern, string version)
        {
            PatternName = pattern;
            Version = version;
        }
        public Pattern(string pattern)
        {
            PatternName = pattern;
        }
        public Pattern()
        {
            PatternName = String.Empty;
            Version = String.Empty;
        }

        public string PatternName { get; private set; }
        public string Version { get; private set; } 
    }

    [AttributeUsage(AttributeTargets.All)]
    public sealed class GUI : Attribute
    {
        public GUI(string pattern, string version)
        {
            Name = pattern;
            Version = version;
        }
        public GUI(string name)
        {
            Name = name;
        }
        public GUI()
        {
            Name = String.Empty;
            Version = String.Empty;
        }
        public string Name { get; private set; }
        public string Version { get; private set; }
    }

    [AttributeUsage(AttributeTargets.All)]
    public sealed class SetBars : Attribute
    {
        public SetBars(BarType barType, int value)
        {
            BarType = barType;
            Value = value;
        }
        public BarType BarType { get; private set; }
        public int Value { get; private set; }
    }
}